﻿using System;
using System.Collections.Generic;
using System.Text;
using NGinnBPM.Runtime;

namespace NGinnBPM.Dao
{
    /// <summary>
    /// Task instance db record
    /// </summary>
    public class TaskInstanceData
    {
        private string _instId;
        private string _definitionId;
        private string _taskId;
        private string _processInstanceId;
        private string _parentTaskInstanceId;
        private int _recVersion;
        private DateTime _startDate = DateTime.Now;
        private DateTime? _finishDate;
        private DateTime _lastModified = DateTime.Now;
        private string _data;
        private TaskInstanceStatus _status;
        private string _taskType;
        private TaskSchedulingStatus _scheduleStatus;


        public virtual string InstanceId
        {
            get { return _instId; }
            set { _instId = value; }
        }
        
        public virtual string ProcessDefinitionId
        {
            get { return _definitionId; }
            set { _definitionId = value; }
        }

        
        public virtual int RecordVersion
        {
            get { return _recVersion; }
            set { _recVersion = value; }
        }

        public virtual TaskSchedulingStatus SchedulingStatus
        {
            get { return _scheduleStatus; }
            set { _scheduleStatus = value; }
        }
        
        public virtual DateTime StartDate
        {
            get { return _startDate; }
            set { _startDate = value; }
        }

        
        public virtual DateTime? FinishDate
        {
            get { return _finishDate; }
            set { _finishDate = value; }
        }

        
        public virtual DateTime LastModified
        {
            get { return _lastModified; }
            set { _lastModified = value; }
        }

        
        
        public virtual TaskInstanceStatus Status
        {
            get { return _status; }
            set { _status = value; }
        }


        public virtual string TaskData
        {
            get { return _data; }
            set { _data = value; }
        }

        public virtual string TaskId
        {
            get { return _taskId; }
            set { _taskId = value; }
        }

        public virtual string ProcessInstanceId
        {
            get { return _processInstanceId; }
            set { _processInstanceId = value; }
        }

        public virtual string ParentTaskInstanceId
        {
            get { return _parentTaskInstanceId; }
            set { _parentTaskInstanceId = value; }
        }

        

        public virtual string TaskType
        {
            get { return _taskType; }
            set { _taskType = value; }
        }
    }
}
